import { EzFormControlConfiguration, EzFormControlEventFn } from '../ez-form-control';
import { EzNumber } from './ez-number';
import { EzFormGroup } from '../ez-form-group';
import { EzForm } from '../ez-form';

/**
 * 数值输入控件配置项
 */
export interface EzNumberConfiguration extends EzFormControlConfiguration<number, EzNumber> {
  type: 'number';
  /**
   * 输入最大值
   */
  max?: number;

  /**
   * 输入最小值
   */
  min?: number;

  /**
   * 精度
   */
  precision?: number;

  /**
   * 步长
   */
  step?: number;

  /**
   * 显示格式化函数
   */
  formatter?: (value: string | number, control: EzNumber, group: EzFormGroup, form: EzForm) => string | number;

  /**
   * 失去焦点事件
   */
  onBlur?: EzFormControlEventFn<EzNumber>;

  /**
   * 获取焦点事件
   */
  onFocus?: EzFormControlEventFn<EzNumber>;
}
